#!/bin/bash

# 该脚本用于从sudo组中删除用户
# 提供了多种实现方法:
# 1. 使用deluser命令删除用户
# 2. 使用gpasswd命令删除用户
# 3. 使用usermod命令删除用户

# 主函数，列表测试上述方法
main() {
    # 列举所有用户供选择
    echo "列举所有用户，请选择要删除的用户:"
    users=$(getent group sudo | awk -F: '{print $4}' | tr ',' '\n')
    i=1
    for user in $users; do
        echo "$i) $user"
        i=$((i + 1))
    done
    read -p "请输入选择的用户编号: " choice
    username=$(echo "$users" | sed -n "${choice}p")

    echo "请选择从sudo组中删除用户的方法:"
    echo "1) 使用deluser命令删除用户"
    echo "2) 使用gpasswd命令删除用户"
    echo "3) 使用usermod命令删除用户"
    read -p "请输入选择(1-3): " method_choice

    case $method_choice in
        1) del_user_deluser ;;
        2) del_user_gpasswd ;;
        3) del_user_usermod ;;
        *) echo "无效的选择" ;;
    esac
}

# 方法1: 使用deluser命令删除用户
del_user_deluser() {
    if id -u $username &> /dev/null; then
        echo "从sudo组中删除用户 [$username]."
        sudo deluser $username sudo
    else
        echo "用户 [$username] 不存在"
    fi
}

# 方法2: 使用gpasswd命令删除用户
del_user_gpasswd() {
    if id -u $username &> /dev/null; then
        echo "从sudo组中删除用户 [$username]."
        sudo gpasswd -d $username sudo
    else
        echo "用户 [$username] 不存在"
    fi
}

# 方法3: 使用usermod命令删除用户
del_user_usermod() {
    if id -u $username &> /dev/null; then
        echo "从sudo组中删除用户 [$username]."
        sudo usermod -G "" $username
    else
        echo "用户 [$username] 不存在"
    fi
}

# 检查脚本是否被直接执行
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    main "$@"
fi